package com.tedu.api.io;

import java.io.Serializable;
import java.util.Arrays;

/**
 * Person.java对象具备如下功能：
 * Person.java对象具备如下g
 * 1.实现序列化接口   Seriazable序列化接口--提供：功能
 * 序列化接口：Person.java--JDK中虚拟机--转成PERson.class【字节码文件】
 *           转换成二进制--序列接口实现
 *           2.静态常量值:
 *           对象输入流--对象输出流
 *           InvalidClassException   类版本好转换异常
 *           原因：序列化或者饭序列化操作，传输嘞--指定版本号--该Person.java
 *                                                   【自动生成一个版本号】
 *   seriaiaVersionID =388
 *   练习：1.对象输入流，对象输出流--实现为标准流
 *        2.Person 对象 实现SeriaLizable 删掉，测试对象输出流是否正常写出
 */

public class Person implements Serializable {
    /**
     * 版本号：决定反序列化是否成功【直接文件站换位对象】  唯一标识
     *       类实现Serializable接口，具备序列化功能，类自动生成版本号
     *        建议：重写版本号
     *        每次增加带吗或者减少代码，统一版本号，读入反序列化成功
     *        实现程序的升级和降级操作
     *        Java而安：Java豆子--按照规范编写实体类
     */
    private  static final long serialVersionUID=1L;
    private String name;//私有属性
    private String[] say;
//空参构造器
    public Person() {
    }
//有参函数
    public Person(String name, String[] say) {
        this.name = name;
        this.say = say;
    }

    public Person(String[] say) {
        this.say = say;
    }
//重写：Object  toString（）   打印对象地址值     对象明@ERD2
    //重写目的：值看对象属性值
    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", say=" + Arrays.toString(say) +
                '}';
    }

    public void setName(String s) {
    }

    public void setSay(String[] strings) {
    }
}
